<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>内置指令</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.7.14/vue.min.js"></script>
</head>
<style>
    /* CSS配合v-cloak */
    [v-cloak]{
        display: none;
    }
</style>
<body>
    <!-- 我们学过的指令：
        v-bind:   单向绑定解析表达式，可简写为 :xxx
        v-model:  双向数据绑定
        v-for=""  遍历数组、对象、字符串
        v-on:     绑定事假监听，可简写为 @
        v-if=""   
        v-else=""
        v-show=""   
        v-text、v-html

        v-cloak:(没有值)
        1、本质是一个特殊的属性，Vue实例创建完毕并接管容器后，会删除v-cloak属性。
        2、使用CSS配合v-cloak可以解决网速慢时页面展示出的{{XXX}}的问题。

        v-once(没有值)
        1、v-once所在节点在初次动态渲染后，就视为静态内容了
        2、以后数据的改变不会引起v-once所在结构的更新，可以用于优化性能
        
        v-pre(没有值)
        1、跳过其所在节点的编译过程
        2、利用他可以跳过：没有指令的语法，没有使用插值语法的节点，辉加快编译。
    -->
    <div id="root">
        <input type="text" autofocus>
        <!-- 自动获取焦点 autofocus -->

        <h2 v-pre>Vue其实很简单</h2>
        <h2 v-pre>hhhh{{name}}</h2>
        <div v-cloak>{{name}}</div>
        <p v-text="name">你好</p>
        <p v-html="str"></p>
        <h2 v-once>初始化的n值是:{{n}}</h2>
        <h2>当前的n值是:{{n}}</h2>
        <button @click="n++">点我n加一</button>
    </div>
    <script>
        Vue.config.productionTip = false;
        new Vue({
            el:"#root",
            data:{
                name:'luoyu',
                str:'<h2>你好啊！</h2>',
                n:1
            }
        });
    </script>
</body>
</html>